# SignalBus.gd
# Central hub for loosely coupled signals
extends Node

# Player related signals
signal player_health_changed(current_health: float, max_health: float)
signal player_died
signal player_experience_changed(current_xp: float, level_xp: float)
signal player_level_up(new_level: int)
signal player_stat_changed(stat_name: String, new_value: float)

# Game state signals
signal game_paused
signal game_resumed
signal game_over
signal score_updated(new_score: int)
signal time_updated(time_string: String)

# Enemy related signals
signal enemy_died(position: Vector2, experience_yield: int, enemy_type: String)

# Upgrade signals
signal upgrade_chosen(upgrade_resource: Resource)
signal show_upgrade_screen(options: Array[Resource])

# Weapon signals
signal weapon_added(weapon_id: String)
signal weapon_upgraded(weapon_id: String, upgrade_details: String)

# Level signals
signal level_loaded(level_name: String)
signal boss_defeated(boss_name: String)

# Add more signals as needed

func _ready():
	print("SignalBus Ready")